<?php
/**
 * 客户管理模块路由配置
 * 路由规范化完成标记 - 已按照ROUTE_STANDARDIZATION_PLAN.md统一为/api前缀路由
 */

use think\facade\Route;

// 客户相关路由
// 兼容旧版API - 直接访问/api/customer/search
Route::get('api/customer/search', 'customer.Customer/search');

Route::group('api/customer/customer', function () {
    Route::get('/list', 'customer.Customer/list');          // 查看客户列表
    Route::get('/datalist', 'customer.Customer/list');      // 查看客户列表（兼容前端API调用）
    Route::get('/search', 'customer.Customer/search');      // 搜索客户
    Route::post('/add', 'customer.Customer/add');           // 新建客户
    Route::put('/edit', 'customer.Customer/edit');          // 编辑客户
    Route::delete('/del', 'customer.Customer/del');         // 删除客户（软删除）
    Route::post('/discard', 'customer.Customer/discard');   // 废弃客户
    Route::post('/assign', 'customer.Customer/assign');     // 分配客户
    Route::get('/status', 'customer.Customer/status');      // 获取客户状态选项
    Route::get('/basic_data', 'customer.Customer/getCustomerBasicData'); // 获取客户基础数据
    Route::get('/statistics', 'customer.Customer/statistics'); // 获取客户统计信息
    Route::get('/view', 'customer.Customer/view');          // 查看客户详情
    Route::post('/create_party_from_customer', 'customer.Customer/create_party_from_customer'); // 创建当事人
    Route::get('/get_party_info', 'customer.Customer/get_party_info'); // 获取当事人信息

    // 客户联系人管理API
    Route::post('/add_contact', 'customer.Customer/addContact');         // 添加联系人
    Route::put('/update_contact', 'customer.Customer/updateContact');    // 更新联系人
    Route::delete('/delete_contact', 'customer.Customer/deleteContact'); // 删除联系人
    Route::post('/set_default_contact', 'customer.Customer/setDefaultContact'); // 设置默认联系人

    // 客户跟进记录管理API
    Route::post('/add_trace', 'customer.Customer/addTrace');             // 添加跟进记录
    Route::put('/update_trace', 'customer.Customer/updateTrace');        // 更新跟进记录
    Route::delete('/delete_trace', 'customer.Customer/deleteTrace');     // 删除跟进记录

    // 客户机会线索管理API
    Route::post('/add_chance', 'customer.Customer/addChance');           // 添加机会线索
    Route::put('/update_chance', 'customer.Customer/updateChance');      // 更新机会线索
    Route::delete('/delete_chance', 'customer.Customer/deleteChance');   // 删除机会线索
});

// 客户等级相关路由
Route::group('api/customer/grade', function () {
    Route::get('/list', 'customer.Grade/list');             // 查看客户等级列表
    Route::post('/add', 'customer.Grade/add');              // 新建客户等级
    Route::put('/edit', 'customer.Grade/edit');             // 编辑客户等级
    Route::delete('/del', 'customer.Grade/del');            // 删除客户等级（软删除）
    Route::get('/set', 'customer.Grade/set');               // 设置客户等级（获取启用的等级列表）
});

// 客户来源相关路由
Route::group('api/customer/source', function () {
    Route::get('/list', 'customer.Source/list');            // 查看客户来源列表
    Route::post('/add', 'customer.Source/add');             // 新建客户来源
    Route::put('/edit', 'customer.Source/edit');            // 编辑客户来源
    Route::delete('/del', 'customer.Source/del');           // 删除客户来源（软删除）
    Route::get('/set', 'customer.Source/set');              // 设置客户来源（获取启用的来源列表）
});

// 行业类型相关路由
Route::group('api/customer/industry', function () {
    Route::get('/list', 'customer.Industry/list');          // 查看行业类型列表
    Route::post('/add', 'customer.Industry/add');           // 新建行业类型
    Route::put('/edit', 'customer.Industry/edit');          // 编辑行业类型
    Route::delete('/del', 'customer.Industry/del');         // 删除行业类型（软删除）
    Route::get('/set', 'customer.Industry/set');            // 设置行业类型（获取启用的行业列表）
});

// 客户联系人相关路由
Route::group('api/customer/contact', function () {
    Route::get('/list', 'customer.Contact/list');           // 查看客户联系人列表
    Route::get('/view', 'customer.Contact/view');           // 查看单个客户联系人
    Route::post('/add', 'customer.Contact/add');            // 新建客户联系人
    Route::put('/edit', 'customer.Contact/edit');           // 编辑客户联系人
    Route::delete('/del', 'customer.Contact/del');          // 删除客户联系人（软删除）
    Route::post('/set_default', 'customer.Contact/set_default'); // 设置默认联系人
});

// 客户跟进记录相关路由
Route::group('api/customer/trace', function () {
    Route::get('/list', 'customer.Trace/list');             // 查看客户跟进记录列表
    Route::get('/view', 'customer.Trace/view');             // 查看单个客户跟进记录
    Route::post('/add', 'customer.Trace/add');              // 新建客户跟进记录
    Route::put('/edit', 'customer.Trace/edit');             // 编辑客户跟进记录
    Route::delete('/del', 'customer.Trace/del');            // 删除客户跟进记录（软删除）
});

// 销售机会相关路由
Route::group('api/customer/chance', function () {
    Route::get('/list', 'customer.Chance/list');            // 查看销售机会列表
    Route::get('/stageOptions', 'customer.Chance/stageOptions'); // 获取销售阶段选项
    Route::post('/add', 'customer.Chance/add');             // 新建销售机会
    Route::put('/edit', 'customer.Chance/edit');            // 编辑销售机会
    Route::delete('/del', 'customer.Chance/del');           // 删除销售机会（软删除）
});

// 客户文件相关路由
Route::group('api/customer/file', function () {
    Route::post('/add', 'customer.File/add');               // 添加附件
    Route::delete('/del', 'customer.File/del');             // 删除附件
});

// 客户操作日志相关路由
Route::group('api/customer/log', function () {
    Route::get('/list', 'customer.Log/list');               // 查看操作日志列表
});

// 常规数据相关路由 (兼容测试脚本)
Route::group('api/customer/basic', function () {
    Route::get('/list', 'adm.Basic/list');                  // 查看常规数据列表
    Route::get('/view', 'adm.Basic/view');                  // 查看单个常规数据
    Route::post('/add', 'adm.Basic/add');                   // 新建常规数据
    Route::put('/edit', 'adm.Basic/edit');                  // 编辑常规数据
    Route::delete('/del', 'adm.Basic/del');                 // 删除常规数据
    Route::get('/set', 'adm.Basic/set');                    // 设置常规数据（获取启用的数据列表）
});

// 会员管理相关路由
Route::group('api/customer/membership', function () {
    Route::get('/list', 'customer.Membership/list');              // 查看会员列表
    Route::get('/stats', 'customer.Membership/stats');            // 获取会员统计数据
    Route::get('/detail/:id', 'customer.Membership/detail');      // 查看会员详情
    Route::post('/create', 'customer.Membership/create');         // 开通会员
    Route::post('/extend/:id', 'customer.Membership/extend');     // 延长会员期限
    Route::post('/freeze/:id', 'customer.Membership/freeze');     // 冻结会员
    Route::post('/unfreeze/:id', 'customer.Membership/unfreeze'); // 解冻会员
    Route::get('/customer-membership', 'customer.Membership/getCustomerMembership'); // 获取客户会员信息
    Route::get('/check-service', 'customer.Membership/checkServicePeriod'); // 检查会员服务期
});

// 客户管理模块路由规范化完成标记
// ROUTE_STANDARDIZATION_DONE: customer.php - 所有客户管理模块路由已统一使用/api前缀